 @ Title: GCD Algorítmo                  		        Filename: Euclid.s
 @ Author: ALEJANDRO HINOJOSA COVARRUBIAS				    Date: 7-Marzo-2017
 @ Description: Algorítmo para máximo comun divisor.
 @ Input: -
 @ Output: MAXIMO COMUN DIVISOR
 
 ######## COde Segment  ##################################################
 
 @ r1 ESPERA EL PRIMER VALOR
 @ r0 espera el segundo
 
 .section       .data
 vals:
     .long 6099, 2166
.section        .text
.globl  _start

_start:
   ldr r2, =vals                 @ PREPARA r1 PARA INICIAR EN LA VARIABLE
   ldr r1, [r2]                  @ CARGA EL PRIMER NUMERO EN r2
   ldr r0, [r2, #4]              @ CARGA EL SEGUNDO NUMERO EN r0
   
 ####### Data Segment ####################################################
gcd:
   cmp r0,r1                    @ COMPARA r0 AND r1
   subgt r0,r0,r1               @ SI r0 > r1, r0 = r0 - r1
   sublt r1,r1,r0               @ SI r0 < r1, r1 = r1 - r0
   bne gcd                      @ SI r0 != r1,  REPETIR
   
   mov    r7,$1                 @ PREPARANDO LA SALIDA
   swi    0                     @ WAKE KERNEL 
   
.end
